home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 101-125 / disk_118 / wiredemo / sub.c < prev    next >
C/C++ Source or Header  |  1992-05-06  |  882b  |  63 lines

  1.  
  2.  
  3. #include "bubbles.h"
  4.  
  5. ISIN(theta)
  6. uword theta;
  7. {
  8.     double d = sin((double)theta / 10430.219);
  9.     return((short)(d * 32767));
  10. }
  11.  
  12. ICOS(theta)
  13. uword theta;
  14. {
  15.     double d = cos((double)theta / 10430.219);
  16.     return((short)(d * 32767));
  17. }
  18.  
  19. ibearing(x,y)
  20. {
  21.     return((long)(bearing((double)x,(double)y) * (32768.0 / XPI)));
  22. }
  23.  
  24. irange(x,y)
  25. {
  26.     return((long)range((double)x,(double)y));
  27. }
  28.  
  29.  
  30. double
  31. bearing(x,y)
  32. double x,y;
  33. {
  34.     if (x < 0.0001 && x > -0.0001) {
  35.     if (y < 0.0)
  36.         return(3*XPI2);
  37.     return(XPI2);
  38.     }
  39.     if (x > 0.0)
  40.     return(atan(y/x));
  41.     return(XPI-atan(-y/x));
  42. }
  43.  
  44. double
  45. range(x,y)
  46. double x,y;
  47. {
  48.     return(sqrt(x*x+y*y));
  49. }
  50.  
  51. double
  52. edgeinterceptrange(x,y)
  53. double x,y;
  54. {
  55.     x = fabs(x);
  56.     y = fabs(y);
  57.     if (x > y)        /*    intercept is (1,?) ? = y/x  */
  58.     return(range(1.0,y/x));
  59.     else        /*    intercept is (?,1) ? = x/y  */
  60.     return(range(1.0,x/y));
  61. }
  62.  
  63.